// 10.实现一个 myCalculator 函数，能够做到加减乘除的链式调用
// console.log(myCalculator(121).add(1).minus(2).multi(3).div(4) // 90

// es5的函数的方式写了一个类
// function MyCalculator(num) {
//   this.num = num;
// }

// MyCalculator.prototype.add = function (n) {
//   this.num += n;
//   return this;
// };
// MyCalculator.prototype.minus = function (n) {
//   this.num -= n;
//   return this;
// };
// MyCalculator.prototype.multi = function (n) {
//   this.num *= n;
//   return this;
// };
// MyCalculator.prototype.div = function (n) {
//   this.num /= n;
//   return this;
// };

// console.log(new MyCalculator(121).add(1).minus(2).multi(3).div(4).num);

// 使用es6的类来实现
class MyCalculator {
  // constructor是类的构造器, 是当这个类被实例化的时候调用
  constructor(val) {
    // console.log(val);
    this.num = val;
  }
  add(n) {
    this.num += n;
    return this;
  }
  minus(n) {
    this.num -= n;
    return this;
  }
  multi(n) {
    this.num *= n;
    return this;
  }
  div(n) {
    this.num /= n;
    return this;
  }
}

console.log(new MyCalculator(121).add(1).minus(2).multi(3).div(4).num);
